The vast majority of product development efforts share the same basic operational characteristics and yield similar levels of productivity. The first dominant characteristic is the way products are broken down into subassemblies. The assembly-level engineers define the subassemblies that will form the product/assembly. For each subassembly, the engineers create a set of design and build specifications that will allow that subassembly to work with the other subassemblies in such a way that they together will satisfy the specifications for the assembly as a whole. The subassembly engineers will then design their subassembly to conform to those specifications as best as possible. In doing so, the engineers may, in turn, define and specify further subassemblies (sub-subassemblies, etc.). In this way, a full hierarchy of subassemblies is defined in such a way that each development team can focus only upon satisfying their subassembly's specifications.
The typical result of such a development process is that the completed subassemblies often do not fully meet the expectations for that subassembly. This may be caused by many things. The assembly engineers may have failed to embody all of their expectations in the subassembly specifications, the subassembly specifications may be interpreted differently by the subassembly engineers than by the assembly engineers, or the subassembly engineers may simply have not been able to develop a subassembly that would meet those specifications (for example, the specifications may have been unachievable or the engineers may have underperformed).
Given that typical result, the development process typically includes an integration testing step where the prototype subassemblies are assembled together and tested. This integration testing may be done in software via simulation, solid modeling, and other design tools, or it may be done using physical, working models of the subassemblies. If the integration tests fail, as is often the case, then one or all subassembly development teams have to rework their designs to achieve revised or refined specifications. Such looping can be very expensive to the overall development process and can make the process timing rather unpredictable. When faced with assemblies that have several levels of hierarchy, the schedule delays become compounded and the costs can skyrocket. Further, engineers end up spending massive amounts of time waiting due to other subassembly delays or re-working due to faulty specifications, which reduces overall productivity dramatically.
The second dominant characteristic of typical product development efforts is the way that knowledge learned in one project is leveraged in future projects. In the vast majority of businesses, such knowledge is captured only in the heads of the engineers that did the work. It is rarely put into a form that is even visible to other engineers; and in rare cases where it is documented, it is typically in a form that is not readily usable by other engineers.
Further, learning is typically treated as a nice by-product of the development process, but is not embraced as a fundamental goal of the development process. Engineers rarely take extra time on a project in order to simply increase the knowledge learned. Given how inefficiently the knowledge is captured and reused, such efforts would be considered wasteful. Thus, a tremendous amount of learning opportunities are simply bypassed in favor of focusing on completing the project.
Unfortunately, such failure to learn and such failure to make the learned knowledge usable results in a lack of flexibility and adaptability when problems occur (such as the integration test failures mentioned previously). This often results in re-learning what has already been mostly learned, but not completely learned (or at least not in a way that makes the knowledge usable in the iteration).
The third dominant characteristic of typical product development efforts, which is a natural result of the first two characteristics, is the severe limitations on innovation during product development processes. Despite the fact that most development efforts would like to encourage innovation, and despite the fact that many of these efforts require innovation in order to satisfy the goals, the vast majority of development efforts severely limit the amount of innovation that is possible.
First, the specification-based development process creates severe limitations on innovation, not allowing anything that would violate the specifications, while at the same time often requiring excessive innovation, in order to satisfy unachievable or near-unachievable specifications. Worse, the specification process puts the majority of the innovation opportunity in the hands of the assembly designer rather than the subassembly designer, who is typically the greater expert on that particular subassembly.
When you couple that with a process that does not encourage learning and does not make the knowledge that is learned readily available, many opportunities for innovation will not be available simply due to a lack of usable knowledge. In fact, the term “fuzzy front end” has become a standard phrase in reference to this situation—early innovation and decision-making is based upon wishful thinking, lack of robust technical knowledge, and the intuition of a few engineers who cannot concretely explain their decisions. As a result, the vast majority of product development efforts deliver disappointing improvements over prior products. That can dramatically reduce the competitiveness of the products.